//
//  ConnectorLayoutViewController.h
//  CocoaSynth
//
//  Created by Thomas Dupont on 19/02/10.
//  Copyright 2010 Apple Inc. All rights reserved.
//

#import <Cocoa/Cocoa.h>

@class PortInViewController;
@class PortOutViewController;
@class PortViewController;

/*!
 @class			ConnectorLayoutViewController
 @abstract		Le controleur de la vue de connecteurs.
 @discussion	Le controleur de la vue sur laquelle seront d&eacute;ssin&eacute;s les connecteurs en cr&eacute;ation et &agrave; laquelle seront ajout&eacute;s les vues de connecteurs.
 */
@interface ConnectorLayoutViewController : NSViewController {
	NSMutableDictionary* portsByModule;
	NSMutableSet* connectors;
	PortInViewController* selectedPortIn;
	PortOutViewController* selectedPortOut;
}

/*!
 @method	selectPortIn:
 @abstract	S&eacute;lectionne le port in pass&eacute; en param&egrave;tre.
 @param		aPort le port &agrave; s&eacute;lectionner.
 */
- (void)selectPortIn:(PortInViewController*)aPort;

/*!
 @method	selectPortOut:
 @abstract	S&eacute;lectionne le port out pass&eacute; en param&egrave;tre.
 @param		aPort le port &agrave; s&eacute;lectionner.
 */
- (void)selectPortOut:(PortOutViewController*)aPort;

/*!
 @method	unselectPorts:
 @abstract	d&eacute;selectionne tous les ports.
 */
- (void)unselectPorts;

/*!
 @method		refresh:
 @abstract		Rafraichit la vue des connecteurs.
 @discussion	M&eacute;thode appel&eacute;e lors du d&eacute;placement d'un module pour d&eacute;placer les connecteurs en cons&eacute;quence.
 */
- (void)refresh;

/*!
 @method	disconnectPort:
 @abstract	D&eacute;connecte le port pass&eacute; en param&egrave;tre.
 @param		aPort Le port &agrave; d&eacute;connecter.
 */
- (void)disconnectPort:(PortViewController*)aPort;

@end
